1. Field of the Invention
This invention relates generally to the field of computer graphics, and more specifically to an apparatus and method for evaluating and rendering parametric curves.
2. Background Art
The evolution of computer technology has resulted in the creation of a sophisticated technical art devoted to the representation of graphical information generated by computers. This art is referred to as computer graphics. In recent years, the use of 3-dimensional computer graphics in scientific and engineering applications has increased, along with the demand for realistic images.
Besides lines, markers and polygons, computer graphics displays today support more general geometric primitives, such as parametric curves. However, the methods used, at present, for evaluating and rendering curves in such computer graphics display systems are often inefficient and require complicated and extensive external control logic.
It is known that parametric curves can be represented in b-spline form and others have attempted, in the past, to evaluate and render curves therefrom. For example, a conventional CAD/CAM application uses a graphics workstation by sending down polylines which make up a curve stored in the host computer data base, as a b-spline curve. According to this procedure, the host computer decomposes the spline curve into straight vectors, and then sends the vectors to the graphics workstation for conventional processing and subsequent display. This procedure is inefficient and fails to take advantage of the many attractive attributes of the b-splines.
U.S. Pat. No. 4,760,548 describes a method and apparatus of providing a visual representation of a curve wherein curve data is provided by a b-spline equation computed with a forward difference technique using scaled integer variables. However, this approach suffers from a number of drawbacks. It supports only uniform non-rational b-splines, a subset of the broader class of non-uniform rational b-splines (NURBS) and cannot effectively render certain curves such as circles. This earlier approach operates on individual spans of a curve in isolation from neighboring spans and depends on integer arithmetic to avoid accumulation of errors obtained when using floating point arithmetic for the forward difference algorithm. There are significant penalties in terms of efficiency, speed and utility associated with these limitations.
U.S. Pat. No. 4,855,935 describes a "Method and Apparatus For Rendering Vectors Using Bresenham Parameters." This approach, like the one in U.S. Pat. No. 4,760,548 does not support NURBS, is strongly dependent on the forward difference algorithm, operates on individual spans in isolation from neighboring spans, depends on integer arithmetic, seems specific to the cubic form and, further, converts a curve directly to single pixels.
None of the known prior art approaches fully capitalize on NURBS data in evaluating and rendering parametric curves. Accordingly, a need exists for a method and apparatus for evaluating and rendering NURBS data representative of a parametric curve, in an efficient, accurate and rapid fashion. The proposed PHIGS (Programmer's Hierarchical Interactive Graphics Standard) PLUS standard for interactive 3-d graphics, supports the definition of curves in terms of NURBS and, thus, reinforces this need.